package com.jiangxiaofei.citycloud.mvp;

import android.content.Context;

import com.jiangxiaofei.citycloud.bean.FleaGoodBean;
import com.jiangxiaofei.citycloud.bean.GoodDetailBean;
import com.jiangxiaofei.citycloud.bean.GoodListBean;
import com.jiangxiaofei.citycloud.bean.FleaMenuBean;
import com.jiangxiaofei.citycloud.bean.NeedBean;
import com.jiangxiaofei.citycloud.httpUtil.BaseView;
import com.jiangxiaofei.citycloud.httpUtil.OnLoadDataIm;
import com.jiangxiaofei.citycloud.param.FleaChildGoodsParam;
import com.jiangxiaofei.citycloud.param.FleaGetDetailParam;
import com.jiangxiaofei.citycloud.param.FleaGoodListParam;
import com.jiangxiaofei.citycloud.param.GoodsPublicParam;
import com.jiangxiaofei.citycloud.param.FleaNeedListParam;
import com.jiangxiaofei.citycloud.param.PutNeedParam;
import com.jiangxiaofei.citycloud.param.SearchParam;

import java.util.List;

/**
 * @author: JiangXFei
 * @date: 2017/11/9 0009
 * @content:
 */

public class FleaConstant {
    /**
     * 获取二手市场分类
     */
    public interface GetFleaMenuMobel {
        void getMainFleaMenu(Context context, int id, OnLoadDataIm callback);

        void getSencendMenu(Context context, int id, OnLoadDataIm callback);

        void getThreeMenu(Context context, int id, OnLoadDataIm callback);
    }

    public interface GetFleaMenuView extends BaseView {
        int getFleaMenu();

        void getFleaMainMenuOnSuccess(List<FleaMenuBean> fleaMenuBeans);

        void getFleaSencendMenuOnSuccess(List<FleaMenuBean> fleaMenuBeans);

        void getFleaThreeMenuOnSuccess(List<FleaMenuBean> fleaMenuBeans);
    }

    public interface GetFleanMenuPersenter {
        void getFleaSencendMenu();

        void getFleaThreeMenu();

        void getMainFleaMenu();
    }

    /**
     * 发布二手商品
     */
    public interface PutFleaGoodsModel {
        void putFleaGoods(Context mContext, GoodsPublicParam param, OnLoadDataIm callback);
    }

    public interface PutFleaGoodsView extends BaseView {
        GoodsPublicParam getFleaGoodsParam();

        void onPutSuccesss(Object o);
    }

    public interface PutFleaGoodsPersenter {
        void putFleaGoods();
    }

    /**
     * 获取首页最新发布商品列表
     */
    public interface GetNewGoodsModel {
        void getNewGoods(Context mContext, int page, OnLoadDataIm callback);
    }

    public interface GetNewGoodsView extends BaseView {
        int getNewGoodsPage();

        void getNewGoodsSuccess(List<FleaGoodBean> goodBeanList);
    }

    public interface GetNewGoodsPersenter {
        void getNewGoods();
    }

    /**
     * 获取商品详细信息
     */
    public interface GetGoodDetailModel {
        void getGoodDetail(Context mContext, FleaGetDetailParam param, OnLoadDataIm callback);
    }

    public interface GetGoodDetailView extends BaseView {
        FleaGetDetailParam getGoodDetailParam();

        void getGoodDetailOnSuccess(List<GoodDetailBean> goodDetailBeans);
    }

    public interface GetGoodDetailPersenter {
        void getGoodDetail();
    }

    /**
     * 获取一级分类下最新商品
     */
    public interface GetChildNewGoodsModel {
        void getChildNewGoods(Context mContext, FleaChildGoodsParam param, OnLoadDataIm callback);
    }

    public interface GetChildNewGoodsView extends BaseView {
        FleaChildGoodsParam getChildNewGoodsParam();

        void childNewGoodsOnSuccess(List<FleaGoodBean> goodBeanList);
    }

    public interface GetChildNewGoodsPersenter {
        void getChildNewGoods();
    }

    /**
     * 获取商品筛选分类列表
     */
    public interface GetGoodListModel {
        void getGoodList(Context mContext, FleaGoodListParam param, OnLoadDataIm callback);
    }

    public interface GetGoodListView extends BaseView {
        FleaGoodListParam getGoodListParam();

        void goodListSuccess(List<GoodListBean> goodListBeans);
    }

    public interface GetGoodListPersenter {
        void getGoodList();
    }

    /**
     * 发布需求
     */
    public interface PutNeedModel {
        void putNeed(Context mContext, PutNeedParam param, OnLoadDataIm callback);
    }

    public interface PutNeedView extends BaseView {
        PutNeedParam getPutNeedParam();

        void putNeedSuccess(Object o);
    }

    public interface PutNeedPersenter {
        void putNeed();
    }

    /**
     * 获取需求详情页面
     */
    public interface GetNeedDetailModel {
        void getNeedDetail(Context mContext, FleaGetDetailParam param, OnLoadDataIm callback);
    }

    public interface GetNeedDetailView extends BaseView {
        FleaGetDetailParam getNeedDetailParam();

        void needDetailOnSuccess(Object o);
    }

    public interface GetNeedDetailPersenter {
        void getNeedDetail();
    }

    /**
     * 获取需求大厅列表
     */

    public interface GetNeedListModel {
        void getNeedList(Context mContext, FleaNeedListParam param, OnLoadDataIm callback);
    }

    public interface GetNeedListView extends BaseView {
        FleaNeedListParam getNeedListParam();

        void getNeedListOnSuccess(Object o);
    }

    public interface GetNeedListPersenter {
        void getNeedList();
    }

    /**
     * 商品搜索
     */
    public interface SearchGoodModel {
        void searchGood(Context mContext, SearchParam param, OnLoadDataIm callback);
    }

    public interface SearchGoodView extends BaseView {
        SearchParam getSearchGoodsParam();

        void searchGoodSuccess(Object o);
    }

    public interface SearchGoodPersenter {
        void searchGood();
    }

    /**
     * 需求搜索
     */
    public interface SearchNeedModel {
        void searchNeed(Context mContext, SearchParam param, OnLoadDataIm callback);
    }

    public interface SearchNeedView extends BaseView {
        SearchParam getSearchNeedParam();

        void searchNeedSuccess(Object o);
    }

    public interface SearchNeedPersenter {
        void searchNeed();
    }

}
